With remote storage becoming commonplace, there are many situations in which a computer system that has local storage does not have some data that it needs stored locally. For example, a computing machine may have previously had its local storage backed up, however the current disk data for the machine may be lost or corrupted, with the backup disk data stored on a different machine. Another example is when a new physical machine is being provisioned and has an empty hard drive. The machine is network-booted by copying an operating system image to the local hard drive so that it can reboot from the local drive.
As another example, a computer system may host one or more virtual machines, each virtual machine comprising software that executes to act as a physical machine. A virtual machine may use one or more virtual hard disks, each of which is basically a file or other storage extent (e.g., a disk, partition on a disk or the like) that is configured to operate as a physical hard disk drive. A virtual machine library may be composed of “gold images” that represent disk contents corresponding to a virtual machine template, for efficiently creating a number of virtual machines that start out almost identical to each other. However the host physical machine may not have the gold image data stored locally, or may not have other potentially large amounts of virtual disk data stored locally.
The process of copying data to the host computer can take a very long time, e.g., on the order of minutes, whereby a computer system or virtual machine on a computer system cannot quickly be booted up. One solution to avoiding the long delay foregoes the use of local storage, and instead stores data on network-based storage (e.g., Fibrechannel, iSCSI, SAN, SMB). While this solution allows the computer system/virtual machine to start relatively quickly, network resources and network-based storage resources continue to be consumed indefinitely. Reliance on network storage also leaves the computer system/virtual machine subject to network-based storage failures. Further, depending on the network-based storage technology, the performance also may be reduced relative to the performance that is achievable by using local storage. Still further, existing technologies that allow remote storage to appear as if it were local storage are generally significantly more expensive than conventional local storage.